#include <iostream>
#define M 23
using namespace std;

template<typename T>
void func(int (&p)[M]){
    
}
template<class T>
class Vector{
private:
    static const int Maxn = 10010;
    T data[Maxn];
    size_t len;
public:
    Vector() : len(0){}
    size_t size() const {return len;}
    void push_back(T ele){
        data[len++] = ele;
    }
    void pop_back() {len--;}
    T* begin() {
        return data;
    }
    T* end() { return data + len;}  
};
// const int Vector::Maxn = 10010;


int main(){

    Vector<int> vec;

    for(int i = 0 ; i < 10 ; ++i){
        vec.push_back(i);
    }
    vec.pop_back();

    for(auto it = vec.begin() ; it != vec.end() ; ++it)
        cout << *it << " ";
    cout << endl;
    return 0;

}